package com.ly.demo.theardlocal;

/**
 * @author liuyang
 * @des InheritableThreadLocal可以实现多个线程访问ThreadLocal的值，
 *     我们在主线程中创建一个InheritableThreadLocal的实例，然后在子线程中得到这个InheritableThreadLocal实例设置的值
 * @Version 1.0
 * @Date: 15/09/2021 16:57
 */
public class InheritableThreadLocalTest {
    //(1)创建ThreadLocal变量
    public static ThreadLocal<String> threadLocal = new InheritableThreadLocal<>();

    public static void main(String[] args) {
        //在main线程中添加main线程的本地变量
        threadLocal.set("mainVal");
        //新创建一个子线程
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("子线程中的本地变量值:" + threadLocal.get());
            }
        });
        thread.start();
        //输出main线程中的本地变量值
        System.out.println("mainx线程中的本地变量值:" + threadLocal.get());
    }
}
